package cn.tedu.antcolony.passport.mapper;

import cn.tedu.antcolony.passport.pojo.entity.AdminLoginLog;
import cn.tedu.antcolony.passport.pojo.param.AdminLoginTime;
import cn.tedu.antcolony.passport.pojo.vo.AdminLoginLogCountVo;
import cn.tedu.antcolony.passport.pojo.vo.AdminLoginLogVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

@Repository
public interface AdminLoginLogMaper extends BaseMapper<AdminLoginLog>{
    /**
     * 添加管理员登录日志
     * @param adminLoginLog
     * @return
     */
    Integer addNewAdminLoginLog(AdminLoginLog adminLoginLog);

    /**
     * 查询管理员登录日志列表
     * @return
     */
    List<AdminLoginLogVo> listAdminLoginLog();

    /**
     * 查询管理员登录次数
     * @return
     */
    List<AdminLoginLogCountVo> adminLoginCount();

    /**
     * 根据时间查询管理员登录日志列表
     * @param adminLoginTime
     * @return
     */
    List<AdminLoginLogVo> listAdminLoginLogByTimeBetween(AdminLoginTime adminLoginTime);


    List<AdminLoginLogVo> listAdminLoginLogByTimeStartTimeAfter(@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime);


    List<AdminLoginLogVo> listAdminLoginLogByTimeEndTimeBefore(@DateTimeFormat(fallbackPatterns = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime);
}
